JasmineJS-এ negative matchers ব্যবহার করে আমরা পরীক্ষিত মানের বিপরীত ফলাফল যাচাই করতে পারি। সাধারণত, toBe এবং toEqual matchers দিয়ে মানের সঠিকতা যাচাই করা হয়, কিন্তু যখন আপনি নিশ্চিত হতে চান যে, একটি মান প্রত্যাশিত মানের সমান নয়, তখন not কিওয়ার্ড ব্যবহার করতে পারেন।
Negative matchers ব্যবহার করার সময়, আপনি একটি মানের সমান না হওয়ার পরিস্থিতি যাচাই করেন।
not.toBe এর ব্যবহার
not.toBe matcher ব্যবহার করে আপনি পরীক্ষা করতে পারেন যে দুটি মান সমান নয়।
সঠিক ব্যবহার:
describe("Testing not.toBe", function() {
it("should not equal to the given value", function() {
const result = 5 + 3;
expect(result).not.toBe(10); // ৫ + ৩ এর ফলাফল ১০ নয়
});
});
এখানে:
expect(result).not.toBe(10);—এই কোডটি পরীক্ষা করে যেresultএর মান ১০ নয়।- ফলস্বরূপ, ৫ + ৩ এর মান ৮ হবে, যা ১০ এর সমান নয়, তাই টেস্টটি পাস করবে।
not.toEqual এর ব্যবহার
not.toEqual ব্যবহার করে আপনি পরীক্ষা করতে পারেন যে দুটি অবজেক্ট বা মান সমান নয়। এটি মূলত জটিল ডেটা স্ট্রাকচারের (যেমন অ্যারে বা অবজেক্ট) ক্ষেত্রে ব্যবহৃত হয়।
সঠিক ব্যবহার:
describe("Testing not.toEqual", function() {
it("should not be equal to the given object", function() {
const obj1 = { name: "John", age: 30 };
const obj2 = { name: "Jane", age: 30 };
expect(obj1).not.toEqual(obj2); // obj1 এবং obj2 এর মান সমান নয়
});
});
এখানে:
expect(obj1).not.toEqual(obj2);—এটি পরীক্ষা করে যেobj1এবংobj2সমান নয়।- যদিও উভয় অবজেক্টের
ageএর মান ৩০, তাদেরnameভিন্ন (একটি "John" এবং অন্যটি "Jane")—এটিtoEqualদ্বারা সমান নয় বলে টেস্টটি পাস করবে।
not.toBe এবং not.toEqual এর পার্থক্য
toBe: এটি একে অপরের সাথে দুটি প্র primitive টাইপের মান (যেমন সংখ্যা, স্ট্রিং, বুলিয়ান) তুলনা করতে ব্যবহার হয়। এটি স্ট্রিক্ট ইকুয়ালিটি (যেমন===) ব্যবহার করে মান যাচাই করে।উদাহরণ:
expect(5).not.toBe(6); // ৫ এবং ৬ সমান নয়toEqual: এটি দুটি অবজেক্ট বা অ্যারের মান তুলনা করতে ব্যবহৃত হয়, এবং এটি গুণগত মানের তুলনা করে, শর্তগুলো একই রকম হলেই এটি সমান হিসেবে বিবেচিত হয়।উদাহরণ:
expect([1, 2, 3]).not.toEqual([1, 2, 4]); // দুটি অ্যারের মান সমান নয়
Negative Matchers এর বাস্তব ব্যবহার
উদাহরণ ১: সঠিকতা যাচাই
describe("Testing negative matchers", function() {
it("should not return undefined", function() {
const result = 5 + 3;
expect(result).not.toBeUndefined(); // ৫ + ৩ এর ফলাফল undefined নয়
});
});
এখানে:
expect(result).not.toBeUndefined();—এটি যাচাই করে যেresultএর মানundefinedনয়।
উদাহরণ ২: ডেটা মডেল যাচাই
describe("Testing negative matchers with objects", function() {
it("should not be equal to the expected object", function() {
const expectedObj = { name: "Alice", age: 25 };
const actualObj = { name: "Bob", age: 25 };
expect(actualObj).not.toEqual(expectedObj); // নাম ভিন্ন হওয়ায় সমান নয়
});
});
এখানে:
expect(actualObj).not.toEqual(expectedObj);—এটি পরীক্ষা করে যেactualObjএবংexpectedObjসমান নয়। যদিওageসমান, কিন্তুnameভিন্ন হওয়ায় টেস্টটি পাস হবে।
সারাংশ
JasmineJS এ negative matchers ব্যবহার করা একটি শক্তিশালী কৌশল যা আপনাকে কোডের ফলাফলগুলোর বিপরীত পরিস্থিতি পরীক্ষা করতে সহায়তা করে।
not.toBe: এটি নিশ্চিত করে যে দুটি মান সমান নয়।not.toEqual: এটি নিশ্চিত করে যে দুটি অবজেক্ট বা অ্যারের মান সমান নয়।
Read more